<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8" import="java.util.*,com.model.*"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<%
	//1.购物车一定是一个集合对象,对货物进行存放
	//2.这个购物车是绑定到session中,以便下一次放商品时直接从session获取购物车中的数据
	String id = request.getParameter("id");
	ArrayList al =(ArrayList) session.getAttribute("list");
	int n = 0;//n相当于是一个标志,买过与否的标志
	if(al == null)//如果此时购物车是空的,我们需要实例化一个购物车
	{
		al = new ArrayList();
		Product p = new Product();
		if(id.equals("1")){
			p.setId("1");
			p.setType("苹果");
			p.setDescribe("阿克苏红富士");
			p.setPrice(10);
			p.setNumber(1);
			
		}else if(id.equals("2")){
			p.setId("2");
			p.setType("橘子");
			p.setDescribe("湖北大蜜桔");
			p.setPrice(5);
			p.setNumber(1);
		}else{
			p.setId("3");
			p.setType("葡萄");
			p.setDescribe("吐鲁番葡萄");
			p.setPrice(3);
			p.setNumber(1);
		}
			al.add(p);//将数据添加到集合对象中
	}else{	
	//购物车非空  
	//我需要判断货物放在购物车之前有没有买过
	//买过的直接更新数量,没买过需要重新添加一种货物
	Product p1 = new Product();
	for(int i = 0; i<al.size(); i++){
		p1 = (Product)al.get(i);
		if(p1.getId().equals(id)){
			//因为是相同货物,直接更新数量
			p1.setNumber(p1.getNumber()+1);
			n++;
			al.set(i, p1);//在i这个位置,把p1更新
			break;//找到该商品后,直接跳出循环
		}
	}
	
	//如果货物没买过,通过n值判断后将新货物添加到购物车
	if(n == 0){
		Product p2 = new Product();
		if(id.equals("1")){
			p2.setId("1");
			p2.setType("苹果");
			p2.setDescribe("阿克苏红富士");
			p2.setPrice(10);
			p2.setNumber(1);
		}else if(id.equals("2")){
			p2.setId("2");
			p2.setType("橘子");
			p2.setDescribe("湖北大蜜橘");
			p2.setPrice(5);
			p2.setNumber(1);
		}else{
			p2.setId("3");
			p2.setType("葡萄");
			p2.setDescribe("吐鲁番葡萄");
			p2.setPrice(3);
			p2.setNumber(1);
		}
		al.add(p2);//将p2插入到ArrayList中
	}

}
	//①使用session.setAttribute将购物车的内容保存
	//②跳转到显示购物车的界面中
	session.setAttribute("list", al);
	request.getRequestDispatcher("showProduct.jsp").forward(request, response);
	%>	

</body>
</html>